package com.dream.order.service;

import com.dream.model.app.AppAbstractUser;
import com.dream.model.order.OnlineOrder;
import com.dream.model.order.OrderCustomer;
import com.dream.model.order.OrderCustomerProduct;
import com.dream.utils.hibernate.PagingVO;
import com.dream.vo.api.ApiOrderUpdate;
import com.dream.vo.order.CustomerProductVO;
import com.dream.vo.order.CustomerVO;
import com.dream.vo.order.OrderQueryVO;
import com.dream.vo.order.OrderVO;

public interface OrderService {
	
	PagingVO query(OrderQueryVO vo , PagingVO page,AppAbstractUser user);
	
	OrderCustomer updateCustomer(CustomerVO vo,AppAbstractUser user);
	
	OrderCustomerProduct updateCustomerProduct(CustomerProductVO vo,AppAbstractUser user);
	
	OnlineOrder updateCustomerOrder(OrderVO vo,AppAbstractUser user);
	
	void dispatchOrder(Long id,String shopId,AppAbstractUser user);
	
	void acceptOrder(Long id,AppAbstractUser user);
	
	OrderCustomer searchCustomer(String name,String mobile);
	
	OrderCustomerProduct searchProduct(String productName,Long customerId);
	
	OnlineOrder getDetail(Long id);
	
	void updateOrder(ApiOrderUpdate vo,AppAbstractUser user);
}